package leetcode.Y2024M6.review;

import org.junit.Test;

import java.util.Arrays;

/**
 * 合并两个有序数组
 */
public class S88 {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
      int len=nums1.length-1;
      m--;
      n--;
      while (m>=0&&n>=0){
          if (nums1[m]<=nums2[n]){
              nums1[len--]=nums2[n--];
          }else {
              nums1[len--]=nums1[m--];
          }
      }
      // 如果nums1[m]上仍有剩余就不用动，nums2[n]上有剩余就直接移过去
      while (n>=0){
          nums1[len--]=nums2[n--];
      }
    }

    @Test
    public void test() {
        int[] nums1 = {1, 2, 3, 0, 0, 0};
        int m = 3;
        int[] nums2 = {2, 5, 6};
        int n = 3;
        merge(nums1,m,nums2,n);
        System.out.println(Arrays.toString(nums1));
    }

    @Test
    public void test1() {
        int[] nums1 = {0};
        int m = 0;
        int[] nums2 = {1};
        int n = 1;
        merge(nums1,m,nums2,n);
        System.out.println(Arrays.toString(nums1));
    }
}
